今天來到 DAY24 更崩潰的是剛剛打了超長結果忘記存檔,現在超崩潰的。沒關係我還是會挺住的,因此我就不會很想打很多廢話哈哈,直奔主題吧!
基本上任何我們根據類神經網路的預測值,通常也是一個時間序列,因此我們可以在這一連串的預測值的時間序列搭配實際應用場景去進行一個決策,例如我預測一連串某個機場的旅客人數,那搭配實際機場的運作方針就可以制定一個合適的旅客通關流程,決定要開幾個海關閘口等問題。
這樣的策略我們一般稱作就是「遍歷策略」也就是說我們策略的執行帶來的損益或風險,他是得一個個你預測出來的時間序列去做決定,你不能只倚賴你的整體預測值的平均數或是中位數之類的,而是每一個個預測值都要爬過一遍,在這個上面去建立策略,這個策略是我們這邊探討的。
由於策略得遍歷你所有的預測出來的時間序列,因此在訓練樣本中我們就可以在整個遍歷過程結束的時候,去計算一個累積損益,由於你策略制定的關係可能導致你的累積損益有各種變化,我們這邊主要會討論的是策略應該要盡可能的讓你的累積損益呈現連續性不間斷(Uninterruptible)的成長。
簡單來說,在金融市場價格資料上我們可能預測接下來時點的價格或價格變化,在這上面我們可能會建立一個策略,這個策略可以非常嚴苛,導致你的預測要能讓策略執行非常困難,這樣會導致你最後的累積損益呈現間斷性的情況,也就是中間有幾個時間區間你幾乎沒有策略執行,這樣的結果拿來對類神經網路進行優化其實是不良的,因為你的策略定得很詭異,例如你可能訂一個很奇怪的條件,達到之後就買進持有到訓練樣本結束之類的,這怎麼可能訓練得起來呢?因為你策略很難發生,發生之後很難透過接下來的策略執行予停止去更加的優化,所以要盡量避免你的利益指標定義出來會造成累積損益會存在空窗期的情況。
一般來說風險指標並不是利益指標的直接反向,例如我的目標是訓練一個類神經網路讓機器人能最快的走到門口,那它的風險並不是最慢的走到門口,而可能是走不到門口或是跌倒的次數等,所以風險指標並不一定是利益指標的反向,這一點很重要。原則上來說,風險指標反而可能是利益指標在遍歷過程中反向的最大值,舉例來說,金融市場中我們交易金融商品希望達到報酬率最高,那風險指標呢?就是在達到那麼高報酬率的同時,我曾經承受過最大的損失,也就是常聽到的 Max Drawdown 。
一般來說,在模型中去最小化風險指標會比最大化利益指標來的容易訓練,但是也可能在實際應用場景中派不上用場,也就是說在測試樣本中無法達到好的報酬結果,報酬不穩定,儘管在訓練或測試樣本中他的最大連續虧損 Max Drawdown 都是差不多的值。
這個原因主要是各種策略在執行的過程中,我們往往對於好的結果來者不拒,但是對於壞的結果也必須進行考量,有時候策略應該被提前結束,如果模型在實際上線之後的風險承受度不比訓練樣本。或是說,利益指標能達到一個令你滿意的結果,然而在訓練過程中卻讓你承擔了極大的風險,這也可能是實務上不能執行的。
所以到這邊你就大概有個概念,我們一般來說會在目標函數 Fitness Function 中放入利益指標來求其最大化,同時也會法入風險指標(例如 MaxDrawdown)搭配一個乘數 lambda 或是用指數方式呈現並搭配一個底數 alpha,就是希望搭風險在遍歷過程中必須要盡可能不要太大,否則利益在高都不能真的實行。